/*
 * TCSS 422 Web Spider Project
 * Group Money: Al McKenzie, Michael Pitts, Taylor Zielske
 */
package model.domain;

/**
 * Defines the basic operations any domain will need to perform.
 * 
 * @author Michael Pitts
 * @version Oct 15, 2011
 */
public interface Domain {
	
	/**
	 * Adds a potential url to this domain.  The url will be checked by the domain's 
	 * robot rules and check for having also been visited.  If it is legal and unique
	 * the url will be added to the URLInputCooker.
	 * @param the_url is the url to vet and possibly parse.
	 */
	public void addURL(final String the_url);
	
	/**
	 * Gets the string representing this domain.  The string will often be used to
	 * hash and search for the domain.
	 * @return the string representation of the domain.
	 */
	public String getDomain();
	
	/**
	 * Gets a hash code for this domain.
	 * @return an int for hashing.
	 * @see Object#hashCode()
	 */
	public int hashCode();
}
